package com.manager
{
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;

	/**
	 * 层管理器
	 *
	 */
	public class LayerManager
	{
		public static const SCENE : int = 0; // 场景层
		public static const UI : int = 1; // ui界面层
		public static const POP : int = 2; // 弹窗
		public static const MESSAGE : int = 3; // 消息层
		public static const TOP : int = 4; // 最顶层

		private static var layerList : Array = [];

		/**
		 * 添加 显示对象到指定层
		 * @param type
		 * @param target
		 *
		 */
		public static function addToLayer(type : int, target : DisplayObject) : void
		{
			var layer : Sprite = layerList[type];

			if(layer && target)
			{
				layer.addChild(target);
			}
		}

		/**
		 * 清空指定层所有子对象
		 * @param type
		 *
		 */
		public static function clearLayer(type : int) : void
		{
			var layer : Sprite = layerList[type];

			if(layer)
			{
				while(layer.numChildren)
				{
					layer.removeChildAt(0);
				}
			}
		}

		/**
		 * 获取指定层
		 * @param type
		 * @return
		 *
		 */
		public static function getLayer(type : int) : Sprite
		{
			return layerList[type];
		}

		/**
		 * 初始化层管理器
		 * @param parent
		 *
		 */
		public static function init(parent : DisplayObjectContainer) : void
		{
			if(parent == null)
			{
				return;
			}

			for(var i : int = 0; i <= TOP; i++)
			{
				var layer : Sprite = new Sprite();
				layer.mouseEnabled = false;
				parent.addChild(layer);
				layerList[i] = layer;
			}
		}

	}
}